package com.xiongtian.springframework.beans.factory.config;

import com.xiongtian.springframework.beans.BeansException;

/**
 * @Author: xiongtian
 * @CreateTime: 2025-03-28  16:44
 * @Version: 1.0
 * @Description: bean后置处理器
 */

public interface BeanPostProcessor {

    /**
     * 在 Bean 对象执行初始化方法之前，执行此方法
     *
     * @param bean     bean对象
     * @param beanName bean名称
     * @return bean对象
     * @throws BeansException 异常
     */
    Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;

    /**
     * 在 Bean 对象执行初始化方法之后，执行此方法
     *
     * @param bean     bean对象
     * @param beanName bean名称
     * @return bean对象
     * @throws BeansException 异常
     */
    Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;
}
